Шаг 323 - Перед проведением сохраняем реквизиты.

Так как форме было произведена установка реквизитов и в таблице может находиться несколько одинаковых основных средств необходимо провести установку реквизитов справочника.

.........
     ВыбратьСтроки();
     Пока ПолучитьСтроку() = 1 Цикл
          Если РежимПроведения <> 1 Тогда
               СпрОС = СоздатьОбъект("Справочник.ОсновныеСредства");
               Если СпрОС.НайтиЭлемент(ОсновноеСредство) = 0 Тогда
                    Сообщение = "В стороке №" + НомерСтроки + " не задано основное средство.";
                    глОшибкаПроведения(Контекст, Сообщение);
                    СтатусВозврата(0); 
                    Возврат;
               КонецЕсли;
     
               СпрОС.Группа                               = Группа;
               СпрОС.ПодлежитАмортизации               = ПодлежитАмортизации;
               СпрОС.СпособНачисленияАмортизации     = СпособНачисленияАмортизации;
               СпрОС.ОбщийОбъемПродукцииРабот          = ОбщийОбъемПродукцииРабот;
               СпрОС.ШифрПоЕНАОФ                          = ШифрПоЕНАОФ;
               СпрОС.МетодНачисленияАмортизации     = МетодНачисленияАмортизации;
               СпрОС.ПервоначальнаяСтоимость           = БалансоваяСтоимость;
              СпрОС.ДатаВводаВЭксплуатацию          = ДатаДок;
               СпрОС.АмортизационнаяГруппа               = АмортизационнаяГруппа;
               СпрОС.ПервоначальнаяСтоимостьН          = ПервоначальнаяСтоимостьН;
               Если ПустоеЗначение(СпрОС.ПрочиеСведения) = 1 Тогда
                    СпрОС.ПрочиеСведения               = ПрочиеСведения;
               КонецЕсли;
               СпрОС.Записать();
          КонецЕсли;
          
          УстановитьРеквизитСправочника(ОсновноеСредство, "Подразделение", Подразделение, ДатаДок);
          УстановитьРеквизитСправочника(ОсновноеСредство, "МОЛ", МОЛ, ДатаДок);
          УстановитьРеквизитСправочника(ОсновноеСредство, "НачислятьАмортизацию", НачислятьАмортизацию, ДатаДок);
          УстановитьРеквизитСправочника(ОсновноеСредство, "КоэффициентАмортизации", КоэффициентАмортизации, ДатаДок);
          УстановитьРеквизитСправочника(ОсновноеСредство, "СрокПолезногоИспользования", СрокПолезногоИспользования, ДатаДок);
          УстановитьРеквизитСправочника(ОсновноеСредство, "Состояние", Перечисление.СостоянияОС.В_Эксплуатации, ДатаДок);

          Если СписатьНаЗатраты = 0 Тогда
               УстановитьРеквизитСправочника(ОсновноеСредство, "СчетЗатрат", СчетЗатрат, ДатаДок);
               УстановитьРеквизитСправочника(ОсновноеСредство, "Субконто1", Субконто1, ДатаДок, СчетЗатрат.ВидСубконто(1));
               УстановитьРеквизитСправочника(ОсновноеСредство, "Субконто2", Субконто2, ДатаДок, СчетЗатрат.ВидСубконто(2));
               УстановитьРеквизитСправочника(ОсновноеСредство, "Субконто3", Субконто3, ДатаДок, СчетЗатрат.ВидСубконто(3));
          КонецЕсли;

          Если ПринятьК_НалоговомуУчету < 3 Тогда
               УстановитьРеквизитСправочника(ОсновноеСредство, "СрокПолезногоИспользованияН", СрокПолезногоИспользованияН, ДатаДок);
               УстановитьРеквизитСправочника(ОсновноеСредство, "СпециальныйКоэффициент", СпециальныйКоэффициент, ДатаДок);
               УстановитьРеквизитСправочника(ОсновноеСредство, "СчетЗатратН", СчетЗатратН, ДатаДок);
               УстановитьРеквизитСправочника(ОсновноеСредство, "СубконтоН1", СубконтоН1, ДатаДок, СчетЗатратН.ВидСубконто(1));
               УстановитьРеквизитСправочника(ОсновноеСредство, "СубконтоН2", СубконтоН2, ДатаДок, СчетЗатратН.ВидСубконто(2));
               УстановитьРеквизитСправочника(ОсновноеСредство, "СубконтоН3", СубконтоН3, ДатаДок, СчетЗатратН.ВидСубконто(3));
          КонецЕсли;
............

Основа установки реквизитов функция

УстановитьРеквизитСправочника
Записать значение периодического реквизита справочника с привязкой к документу.

Синтаксис:
УстановитьРеквизитСправочника(<ЭлементСправочника>, <НазваниеРеквизита>,
<3начение>, <ДатаУстановки>, <ИмяТипа>, <Длина>, <Точность>)
Англоязычный синоним:
SetRefField

Параметры:
<ЭлементСправочника> Выражение, задающее элемент справочника, в котором требуется записать новое значение периодического реквизита.
<НазваниеРеквизита> Строковое выражение — название периодического реквизита справочника (как он назван в конфигураторе) в котором требуется записать новое значение периодического реквизита.
<3начение> Новое значение периодического реквизита.
<ДатаУстановки> Выражение типа дата, на которую требуется установить новое значение периодического реквизита. Этот параметр имеет смысл только для не оперативных документов и позволяет установить значение на другую дату чем дата документа, но тогда с пустым временем.
<ИмяТипа> Необязательный параметр. Строковое выражение — название типа данных (или Вид субконто).
<Длина> Необязательный параметр. Число — длина числового или строкового значения.
<Точность> Необязательный параметр. Число знаков после десятичной точки для числового значения.

Описание:
Метод УстановитьРеквизитСправочника записывает новое значение периодического реквизита справочника с привязкой к документу. Использование Данного метода позволяет вносить изменения в справочники с привязкой к проведению документа. Это значит, что при удалении или редактировании или отказе от проведения документа все сделанные им изменения в справочнике будут корректно отменены. Средства языка позволяют выбирать такие движе-иия справочника по документу или определять документ, который произвел изменения в справочнике (см. Работа с объектом Периодический).
Параметры <ИмяТипа>, <Длина> и <Точность> следует указывать при установке значения периодического реквизита справочника имеющего неопределенный тип.
Данный метод доступен только в контексте Модуля документа в предопределенной процедуре ОбработкаПроведения (см. Гл. Системные предопределенные процедуры).

Но это еще не все. В самом конце Вы видите что происходит установка налоговых реквизитов для налогового учета, тут нужно немного отвлечься что бы посмотреть что такое налоговый учет.

Hosted by uCoz